#ifndef __COMPONENT_BEHAVIOR_SELECTOR_H__
#define __COMPONENT_BEHAVIOR_SELECTOR_H__

#include "Components/Component.hpp"
#include "ComponentBehavior.hpp"
#include "Engine/Vector3.hpp"

using namespace PocketSurvival::Engine;

namespace PocketSurvival
{
    struct ComponentCreature;

    struct ComponentBehaviorSelector : public Component
    {
    protected:
        bool m_isDisableBehavior = false;
        std::vector<ComponentBehavior*> m_behaviorVec;

    public:
        ComponentCreature *componentCreature;


        inline bool isDisableBehavior();
        void setIsDisableBehavior(bool value);

        virtual void update(float dt) override;
		virtual const std::string &getName() const override;
        static const std::string &GetName();
        virtual void load(const nlohmann::json &jsonData) override;

    protected:
        
    };

    inline bool ComponentBehaviorSelector::isDisableBehavior()
    {
        return m_isDisableBehavior;
    }
    
}

#endif